module sram4x8(DIN,RSTN,DOUT,IDLE);
//input CLK;
input[7:0] DIN;
input RSTN,IDLE;
output DOUT;
wire RSTN,IDLE;
reg WR;
wire[7:0] DIN;
reg[7:0] DOUT;
reg[7:0] sram[0:3];
reg[1:0] cnt;		//寻址
reg[1:0] contain;

always@(RSTN or IDLE) begin
	if(!RSTN) begin
		cnt<=0;
		WR<=0;
		contain<=0;
	end
	else 
		if(IDLE) begin
			WR<=0;										//线路空闲，没有数据传入，则sram则不需要写入数据
		end	
		else begin
			WR<=1;										//线路忙，有数据传入，则sram则需要写入数据
			contain<=cnt;
			cnt<=cnt+1'b1;
		end
end

always@(WR or IDLE or RSTN ) begin
	if(!RSTN) DOUT<=8'hzz;
	else begin
		if(WR&IDLE) begin 						//有数据发送过来，等到	IDLE再次为1则数据已经接受完毕，可以写入数据了
			sram[contain]<=DIN;
		end
		else begin
			if(IDLE) begin	
				DOUT<=sram[contain];				//当不写数据时，数据一直读出
			end
			else begin
				DOUT<=8'hzz;							//当不写数据时，数据一直读出
			end
		end
	end
end

endmodule

		
		
		







		
